Embodiments of the inventive concept relate generally to semiconductor memory devices. More particularly, embodiments of the inventive concept relate to nonvolatile memory devices and related program verification circuits.
Semiconductor memory devices can be roughly divided into two categories according to whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices, which retain stored data when disconnected from power. Examples of volatile memory devices include dynamic random access memory (DRAM) and static random access memory (SRAM), and examples of nonvolatile memory devices include read only memory (ROM) and flash memory.
Flash memory devices can be further divided into two categories according to the organization of their array structures. These categories include NAND flash memory devices, which have an array structure that allows memory cells to be accessed in page units, and NOR flash memory devices, which have an array structure that allows memory cells to be accessed in individual bytes. NAND flash memory devices can provide higher storage density than NOR flash memory devices, but they tend to provide slower read times. Accordingly, NAND flash memory devices are commonly used for mass data storage, while NOR flash memory devices are commonly used to store data requiring frequent access, such as application code or data.
Some flash memory devices are designed to store more than one bit of data per memory cell. These flash memory devices are referred to as multi-level cell (MLC) flash memory devices. In an MLC flash memory device, memory cells store multiple bits of data by using multiple threshold voltage distributions to represent different states of multi-bit data. For example a two-bit MLC device uses four threshold voltage distributions to represent respective logical states “11”, “10”, “01”, and “00”.
To ensure accurate storage of multi-bit data, the threshold voltage distributions of an MLC flash memory device must be separated by adequate sensing margins. However, as the integration density of flash memory devices continues to increase, the sensing margins tend to decrease as well, which can lead to errors and can increase the time required to perform programming operations.